package Registration;

import dbmanager.DBManager;
import dbmanager.GetIdName;

import java.io.RandomAccessFile;
import java.sql.*;

import utility.SplitString;

public class DefaultSupString 
{
	String Filename = "ItemList_Cat_B.csv";
	String path = "D:\\Cdrive\\C-DRIVE\\Register\\Final\\";
	
	String Filename1 = "itemWithShortNameB.csv";
	String path1 = "D:\\Cdrive\\C-DRIVE\\Register\\Final\\";
	
	DBManager db;
	String sqlTable = "master_table";
	ResultSet rs;
	DefaultSupString dss;
	String supstr;
	
	RandomAccessFile random;
	RandomAccessFile rftowrite;
	SplitString split = new SplitString();
	
	void itemaspv()
	{
		dss = new DefaultSupString();
				
		try
		{
			random = new RandomAccessFile(path+Filename,"r");
			String src = random.readLine();
			StringBuffer sbr = new StringBuffer();
			sbr.append(writecsv(src,"SHORT_NAME"));
			while((src=random.readLine() )!= null)
			{
				try 
				{
					String record[] = src.split("\t");
					System.out.println("Item name : "+record[0]);
										
					String sstocsv = dss.getSupplierString(record[0]);
					sbr.append(writecsv(src,sstocsv));
					
				} 
				catch (NullPointerException npe) 
				{
					npe.printStackTrace();
				}
			}
			
			rftowrite = new RandomAccessFile (path1+Filename1,"rw");
			rftowrite.writeBytes(sbr.toString());
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		
	}
		
	String getSupplierString(String itemname)
	{
		try
		{
			int size = 4;
			while (itemname.length()>20)
			{
				/*
				supstr = itemname.substring(0, 10);
				if ((tempstr[tempstr.length-2].length()+tempstr[tempstr.length-1].length())>10)
				{
					String templine = (tempstr[tempstr.length-2]+tempstr[tempstr.length-1]);
					supstr = supstr+" "+templine.substring(templine.length()-7,templine.length());
				}
				else
				{
					supstr = supstr+" "+tempstr[tempstr.length-2]+" "+tempstr[tempstr.length-1];
				}
				*/
				String[] splitRecord = split.split(itemname, " ");
				for(int i=splitRecord.length-1;i>=0;i--)
				{
					if(splitRecord[i].trim().length()==0)
						splitRecord[i] = "";
					if(splitRecord[i].length()>size-1)
						splitRecord[i] = splitRecord[i].trim().substring(0,size);
					String message = checkLegth(splitRecord);
					if(message.equals("error")==false)
						return message;
				}
				itemname = "";
				for(int i=splitRecord.length-1;i>=0;i--)
					itemname = itemname+ splitRecord[i]+" ";
				size--;
			}
			System.out.println("Supplier String : "+supstr+"\n");
		}
		catch(Exception npe)
		{
			npe.printStackTrace();
		}
		return itemname;
	}
	
	String checkLegth(String[] splitRecord) 
	{
		String message ="";
		for(int i=0;i<splitRecord.length;i++)
		{
			if(splitRecord[i].trim().length()==0)
				splitRecord[i] = "";
			 message = message+splitRecord[i].trim()+" ";
			 if(message.length()>20)
				 return "error";
		}
		return message;
	}

	String writecsv(String itemname, String ss)
	{
		try
		{
			return itemname+"\t"+ss+"\n";
		}
		catch (Exception e)
		{
			e.printStackTrace();
			return "";
		}
	}
	

	public static void main(String[] args) 
	{
		DefaultSupString dss1 = new DefaultSupString();
		dss1.itemaspv();
	}
}